<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://schemas.datacontract.org/2004/07/EpidemicSimulator" elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/EpidemicSimulator" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:import schemaLocation="http://localhost:52878/GraphProviderService.svc?xsd=xsd2" namespace="http://schemas.datacontract.org/2004/07/GraphInformation" />
  <xs:import schemaLocation="http://localhost:52878/GraphProviderService.svc?xsd=xsd3" namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
  <xs:complexType name="SimulationSetupSL">
    <xs:sequence>
      <xs:element minOccurs="0" name="condition" type="xs:int" />
      <xs:element minOccurs="0" name="diseaseModelGraphML" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="maxContactsPerStep" type="xs:int" />
      <xs:element minOccurs="0" name="minContactsPerStep" type="xs:int" />
      <xs:element xmlns:q1="http://schemas.datacontract.org/2004/07/GraphInformation" minOccurs="0" name="networkGraph" nillable="true" type="q1:Graph" />
      <xs:element minOccurs="0" name="networkGraphML" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="stateChangePlansSL" nillable="true" type="tns:ArrayOfStateChangePlanSL" />
      <xs:element minOccurs="0" name="stopConditionsSL" nillable="true" type="tns:ArrayOfStopConditionSL" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="SimulationSetupSL" nillable="true" type="tns:SimulationSetupSL" />
  <xs:complexType name="ArrayOfStateChangePlanSL">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="StateChangePlanSL" nillable="true" type="tns:StateChangePlanSL" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfStateChangePlanSL" nillable="true" type="tns:ArrayOfStateChangePlanSL" />
  <xs:complexType name="StateChangePlanSL">
    <xs:sequence>
      <xs:element minOccurs="0" name="applyTime" type="xs:long" />
      <xs:element minOccurs="0" name="inPersents" type="xs:boolean" />
      <xs:element minOccurs="0" name="stateChangeStrategyName" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="value" type="xs:int" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="StateChangePlanSL" nillable="true" type="tns:StateChangePlanSL" />
  <xs:complexType name="ArrayOfStopConditionSL">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="StopConditionSL" nillable="true" type="tns:StopConditionSL" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfStopConditionSL" nillable="true" type="tns:ArrayOfStopConditionSL" />
  <xs:complexType name="StopConditionSL">
    <xs:sequence>
      <xs:element xmlns:q2="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="initParams" nillable="true" type="q2:ArrayOfanyType" />
      <xs:element minOccurs="0" name="stopConditionName" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="StopConditionSL" nillable="true" type="tns:StopConditionSL" />
  <xs:complexType name="ArrayOfExperimentState">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="ExperimentState" nillable="true" type="tns:ExperimentState" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfExperimentState" nillable="true" type="tns:ArrayOfExperimentState" />
  <xs:complexType name="ExperimentState">
    <xs:sequence>
      <xs:element minOccurs="0" name="running" type="xs:boolean" />
      <xs:element minOccurs="0" name="simTime" type="xs:long" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ExperimentState" nillable="true" type="tns:ExperimentState" />
  <xs:complexType name="DiseaseModelGraph">
    <xs:sequence>
      <xs:element minOccurs="0" name="Edges" nillable="true" type="tns:ArrayOfSimpleDiseaseModelEdge" />
      <xs:element minOccurs="0" name="Vertices" nillable="true" type="tns:ArrayOfSilverLightDiseaseModelNode" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="DiseaseModelGraph" nillable="true" type="tns:DiseaseModelGraph" />
  <xs:complexType name="ArrayOfSimpleDiseaseModelEdge">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="SimpleDiseaseModelEdge" nillable="true" type="tns:SimpleDiseaseModelEdge" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfSimpleDiseaseModelEdge" nillable="true" type="tns:ArrayOfSimpleDiseaseModelEdge" />
  <xs:complexType name="SimpleDiseaseModelEdge">
    <xs:sequence>
      <xs:element minOccurs="0" name="Condition" type="xs:int" />
      <xs:element minOccurs="0" name="Source" type="xs:int" />
      <xs:element minOccurs="0" name="Target" type="xs:int" />
      <xs:element minOccurs="0" name="maxTime" type="xs:int" />
      <xs:element minOccurs="0" name="minTime" type="xs:int" />
      <xs:element minOccurs="0" name="probability" type="xs:double" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="SimpleDiseaseModelEdge" nillable="true" type="tns:SimpleDiseaseModelEdge" />
  <xs:complexType name="ArrayOfSilverLightDiseaseModelNode">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="SilverLightDiseaseModelNode" nillable="true" type="tns:SilverLightDiseaseModelNode" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfSilverLightDiseaseModelNode" nillable="true" type="tns:ArrayOfSilverLightDiseaseModelNode" />
  <xs:complexType name="SilverLightDiseaseModelNode">
    <xs:sequence>
      <xs:element minOccurs="0" name="Id" type="xs:int" />
      <xs:element minOccurs="0" name="nodeColor" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="nodeX" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="nodeY" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="stateClass" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="stateName" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="SilverLightDiseaseModelNode" nillable="true" type="tns:SilverLightDiseaseModelNode" />
</xs:schema>